home *** CD-ROM | disk | FTP | other *** search
/ PCGUIA 127 / PC Guia 127.iso / Software / Produtividade / OpenOffice.org 2.0.1 / openofficeorg4.cab / Capitalise.py < prev    next >
Text File  |  2005-02-11  |  3KB  |  62 lines

  1.  
  2. # helper function
  3. def getNewString( theString ) :
  4.     if( not theString or len(theString) ==0) :
  5.         return ""
  6.     # should we tokenize on "."?
  7.     if theString[0].isupper() and len(theString)>=2 and theString[1].isupper() :
  8.     # first two chars are UC => first UC, rest LC
  9.         newString=theString[0:1].upper() + theString[1:].lower();
  10.     elif theString[0].isupper():
  11.     # first char UC => all to LC
  12.         newString=theString.lower()
  13.     else: # all to UC.
  14.         newString=theString.upper()
  15.     return newString;
  16.  
  17. def capitalisePython( ): 
  18.     """Change the case of a selection, or current word from upper case, to first char upper case, to all lower case to upper case..."""
  19.     import string
  20.  
  21.     # The context variable is of type XScriptContext and is available to
  22.     # all BeanShell scripts executed by the Script Framework
  23.     xModel = XSCRIPTCONTEXT.getDocument()
  24.  
  25.     #the writer controller impl supports the css.view.XSelectionSupplier interface
  26.     xSelectionSupplier = xModel.getCurrentController()
  27.  
  28.     #see section 7.5.1 of developers' guide
  29.     xIndexAccess = xSelectionSupplier.getSelection()
  30.     count = xIndexAccess.getCount();
  31.     if(count>=1):  #ie we have a selection
  32.         i=0
  33.     while i < count :
  34.             xTextRange = xIndexAccess.getByIndex(i);
  35.             #print "string: " + xTextRange.getString();
  36.             theString = xTextRange.getString();
  37.             if len(theString)==0 :
  38.                 # sadly we can have a selection where nothing is selected
  39.                 # in this case we get the XWordCursor and make a selection!
  40.                 xText = xTextRange.getText();
  41.                 xWordCursor = xText.createTextCursorByRange(xTextRange);
  42.                 if not xWordCursor.isStartOfWord():
  43.                     xWordCursor.gotoStartOfWord(False);
  44.                 xWordCursor.gotoNextWord(True);
  45.                 theString = xWordCursor.getString();
  46.                 newString = getNewString(theString);
  47.                 if newString :
  48.                     xWordCursor.setString(newString);
  49.                     xSelectionSupplier.select(xWordCursor);
  50.             else :
  51.  
  52.                 newString = getNewString( theString );
  53.                 if newString:
  54.                     xTextRange.setString(newString);
  55.                     xSelectionSupplier.select(xTextRange);
  56.         i+= 1
  57.  
  58.  
  59. # lists the scripts, that shall be visible inside OOo. Can be omited, if
  60. # all functions shall be visible, however here getNewString shall be surpressed
  61. g_exportedScripts = capitalisePython,
  62.